home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 23
/
Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso
/
Aminet
/
dev
/
misc
/
gms_dev.lha
/
GMSDev
/
Source
/
Asm
/
Blitter
/
RandomPlot.s
< prev
next >
Wrap
Text File
|
1997-12-16
|
3KB
|
125 lines
;-------T-------T------------------------T----------------------------------;
;Name: Random Plot
;Author: Paul Manias
;Copyright: DreamWorld Productions (c) 1996-1997. Freely distributable.
;
;This is a graphical demonstration of the Random() functions. The default
;is to use FastRandom, but you can change it to SlowRandom if you look
;below.
;
;LMB exits.
INCDIR "GMSDev:Includes/"
INCLUDE "dpkernel/dpkernel.i"
Random = _LVOFastRandom ;_LVOFastRandom() or _LVOSlowRandom().
SECTION "Demo",CODE
;===========================================================================;
; INITIALISE DEMO
;===========================================================================;
STARTDPK
Start: MOVEM.L A0-A6/D1-D7,-(SP)
move.l DPKBase(pc),a6
lea ScreenTags(pc),a0
CALL Init
tst.l d0
beq.s .Exit
moveq #ID_JOYDATA,d0 ;Get joydata structure.
CALL Get
move.l d0,JoyData
beq.s .Exit
move.l d0,a0 ;Initialise the joydata structure.
CALL Init
tst.l d0
beq.s .Exit
move.l Screen(pc),a0
CALL Display
bsr.s Main
.Exit move.l DPKBase(pc),a6
move.l JoyData(pc),a0
CALL Free
move.l Screen(pc),a0
CALL Free
MOVEM.L (SP)+,A0-A6/D1-D7
moveq #ERR_OK,d0
rts
;===========================================================================;
; MAIN LOOP
;===========================================================================;
Main:
.loop move.l DPKBase(pc),a6
move.l JoyData(pc),a0
CALL Query
move.l JoyData(pc),a0
move.l JD_Buttons(a0),d0
btst #JB_LMB,d0
bne.s .done
move.l Screen(pc),a0
move.l GS_Bitmap(a0),a1
move.l BMP_AmtColours(a1),d1 ;Get random colour.
subq.l #1,d1
jsr Random(a6) ;>> = Get random number.
addq.l #1,d0
move.l d0,d3 ;d3 = Colour to use.
move.w GS_Width(a0),d1 ;Get random X.
jsr Random(a6) ;>> = Get random number.
move.w d0,d4 ;d4 = Store X to use.
move.w GS_Height(a0),d1 ;Get random Y.
jsr Random(a6) ;>> = Get random number.
move.w d0,d2 ;d2 = Y to use.
move.w d4,d1 ;d1 = Get back X.
move.l BLTBase(pc),a6
move.l Screen(pc),a0
move.l GS_Bitmap(a0),a0
CALL bltDrawUCPixel
bra.s .loop
.done rts
;===========================================================================;
; DATA
;===========================================================================;
JoyData: dc.l 0
ScreenTags: dc.l TAGS_SCREEN
Screen: dc.l 0
dc.l GSA_Palette,.palette
dc.l GSA_BitmapTags,0
dc.l BMA_AmtColours,32
dc.l TAGEND,0
dc.l GSA_Width,640
dc.l GSA_Height,512
dc.l GSA_ScrMode,HIRES|LACED
dc.l TAGEND
.palette dc.l PALETTE,32
dc.l $000000,$109000,$F0C0B0,$F0A090,$D08080,$906050
dc.l $604040,$201010,$400060,$404040,$F0F000,$403020
dc.l $C0C000,$109000,$500010,$808000,$206010,$207010
dc.l $308020,$409020,$50A030,$50B040,$607070,$60C040
dc.l $708080,$90A0A0,$B0C0C0,$800010,$900010,$A00020
dc.l $700010,$600010
;===========================================================================;
ProgName: dc.b "Random Plot",0
ProgAuthor: dc.b "Paul Manias",0
ProgDate: dc.b "15 December 1997",0
ProgCopyright: dc.b "DreamWorld Productions (c) 1996-1997. Freely distributable.",0
ProgShort: dc.b "Random pixel plotter.",0
even